This invention relates generally to document processing for a data processing system. More particularly, it relates to a method of marking elements of a hierarchical document structure, which may contain text, graphic, image or other data such as that defined by the Standard Generalized Markup Language (SGML), to allow a user to manipulate the logical structure of the elements of the document hierarchy with or without requiring the display of tags.
Many document editors have been developed for the processing and manipulation of conventional alphanumeric text, as well as of graphical or image data elements. WYSIWYG editors are based on the principle that the creator of a document should interact with a display which accurately represents how the document will appear when it is finally printed, otherwise known as the "What You See Is What You Get" (WYSIWYG) philosophy. This type of document editor is deemed particularly user friendly for unsophisticated users to obtain predictable results without a detailed understanding of the underlying document structure.
When manipulating portions of a document, it is often desirable to create a "mark" by visually altering, e.g., highlighting, reverse-video, changing color, etc. a portion of the document on a display to signify to the user which portion of the document he has selected for further processing operations. Many existing document processors allow a user to create a mark; most of these processors create a stream mark. A stream mark is a string of visually altered alphanumeric characters between two document positions which are defined by the user. A few existing word processors allow a user to mark a portion of text analagous to a single element in a structured document by visually altering, the string of alphanumeric characters which corresponds to a given set of formatting controls. However, the latter group of the prior art editors have no concept of marking a generic element.
In a structured or hierarchical document, all data resides in elements which are defined by a begin tag, its content, usually a string of alphanumeric characters, but possibly graphical or image data, and an end tag, if necessary. A number of lower-level elements typically comprise the next higher-level element; for example, several paragraph elements may make up a chapter element, and several chapter elements make up the entire document However, in the case of a structured document, the tags which define the logical structure of the document cannot normally be displayed without compromising the WYSIWYG nature of the display. Without the display of the tag locations, it is more difficult for a user to mark complete elements and to perform subsequent editing operations, such as move, copy or delete, upon the entire element of a document. Even if the tags are displayed, i.e., in a non-WYSIWYG manner, it is quite tedious to mark an entire element where the element is large, e.g., a chapter element, where many screens of the document must be manually scrolled.
Moreover, no provision is made in the prior art for either hierarchically contracting a stream or element mark to a lower level element or hierarchically expanding a stream or element mark to a higher level element. Since the user does not necessarily understand where the beginning and end tags of an element are located, the ability to contract or expand the mark is very desirable.